package cn.com.dycc.push;

import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import net.sf.json.JSONObject;

/**
 * 推送的消息格式
 * @author linfa
 *
 */
public class PushInfo {
	
	public static JSONObject PushFormat(Integer deviceType,String message,String title,Map<String,Object> map){
		
		JSONObject notification = new JSONObject();
        if(deviceType == 4){
            JSONObject jsonAPS = new JSONObject();
            //其内容可以为字符串或者字典，如果是字符串，那么将会在通知中显示这条内容。
            jsonAPS.put("alert", message);
            //指定通知展现时伴随的提醒音文件名。如果找不到指定的文件或者值为 default，那么默认的系统音将会被使用。如果为空，那么将没有声音。
            jsonAPS.put("sound", "");
            //"key1" "value1" "key2" "value2": 用户自定义参数的字段的key值和对应的vlue值。
            notification.put("aps", jsonAPS);
          //提示标题
            notification.put("title", title);
//          notification.put("key2", "value2");这里用于用户自定义
            //推送的具体消息
            if (map != null && !map.isEmpty()){
                Set<String> customContentMapKeys = map.keySet();
                Iterator<String> irt = customContentMapKeys.iterator();
                while (irt.hasNext()){
                    String key = (String)irt.next();
                    String value = (String)map.get(key);
                    notification.put(key, value);
                }
            }
        }else if(deviceType==3){
        	//提示标题
            notification.put("title",title);
            //通知文本内容，不能为空。
            notification.put("description",message);
            //android客户端自定义通知样式，如果没有设置默认为0。
            notification.put("notification_builder_id", 0);
  //        notification.put("notification_basic_style", 4);
  //        notification.put("open_type", 1);
 //         notification.put("url", "");//app上点开推送之后跳转的链接
            JSONObject jsonCustormCont = new JSONObject();
  //        jsonCustormCont.put("content", "test"); //自定义内容，key-value
       
            if (map != null && !map.isEmpty()){//map中放的是用户自定义内容
                Set<String> customContentMapKeys = map.keySet();
                Iterator<String> irt = customContentMapKeys.iterator();
                while (irt.hasNext()){
                    String key = (String)irt.next();
                    String value = (String)map.get(key);
                    jsonCustormCont.put(key, value);
                }
            }
            notification.put("custom_content", jsonCustormCont);
        }
        
        return notification;
		
	}
}
